﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;


namespace Tiro_Alvo.Estados.Jogo
{
    class Alvo
    {

        Texture2D alvo;
        public Rectangle Local_Alvo;
        int escolherTextura;
        int velocidade1;
        int velocidade2;
        int velocidade3;
        int velocidade4;
        int velocidade5;
        int velocidade6;
        int velocidade7;
        int velocidade8;
        int velocidade9;
        public float alfa;
        public bool acertou;
        public bool viradodireita;

        public Alvo(ContentManager Content)
        {
            #region EscolherTextura

            escolherTextura = Game1.random.Next(1, 8);

            if (escolherTextura == 1)
            {
                //Load na textura do Alvo
                alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos1");
            }
            if (escolherTextura == 2)
            {
                //Load na textura do Alvo
                alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos2");
            }
            if (escolherTextura == 3)
            {
                //Load na textura do Alvo
                alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos3");
            }
            if (escolherTextura == 4)
            {
                //Load na textura do Alvo
                alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos4");
            }
            if (escolherTextura == 5)
            {
                //Load na textura do Alvo
                alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos5");
            }
            if (escolherTextura == 6)
            {
                //Load na textura do Alvo
                alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos6");
            }
            if (escolherTextura == 7)
            {
                //Load na textura do Alvo
                alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos7");
            }
            if (escolherTextura == 8)
            {
                //Load na textura do Alvo
                alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos8");
            }
            if (escolherTextura == 9)
            {
                //Load na textura do Alvo
                alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos9");
            }
            #endregion

            //Posicao do Alvo
            Local_Alvo = new Rectangle(1290, 315 , 65, 65);

            velocidade1 = 1;
            velocidade2 = 2;
            velocidade3 = 3;
            velocidade4 = 4;
            velocidade5 = 5;
            velocidade6 = 6;
            velocidade7 = 7;
            velocidade8 = 8;
            velocidade9 = 9;

            viradodireita = false;
         
        }

        public void Update(GameTime gameTime, ContentManager Content)
        {
            //Checando se acertou o alvo
            
                if (acertou)
                {
                    #region Somando_pontos
                    if (escolherTextura == 1)
                    {
                        Jogo.pontos += 1;
                    }
                    if (escolherTextura == 2)
                    {
                        Jogo.pontos += 2;
                    }
                    if (escolherTextura == 3)
                    {
                        Jogo.pontos += 3;
                    }
                    if (escolherTextura == 4)
                    {
                        Jogo.pontos += 4;
                    }
                    if (escolherTextura == 5)
                    {
                        Jogo.pontos += 5;
                    }
                    if (escolherTextura == 6)
                    {
                        Jogo.pontos += 10;
                    }
                    if (escolherTextura == 7)
                    {
                        Jogo.pontos += 15;
                    }
                    #endregion
                    Local_Alvo.X = Game1.random.Next(540, 1290);
                    Local_Alvo.Y = 90 * Game1.random.Next(0, 4) + 315;
                    #region EscolherTextura

                    escolherTextura = Game1.random.Next(1, 8);

                    if (escolherTextura == 1)
                    {
                        //Load na textura do Alvo
                        alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos1");
                    }
                    if (escolherTextura == 2)
                    {
                        //Load na textura do Alvo
                        alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos2");
                    }
                    if (escolherTextura == 3)
                    {
                        //Load na textura do Alvo
                        alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos3");
                    }
                    if (escolherTextura == 4)
                    {
                        //Load na textura do Alvo
                        alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos4");
                    }
                    if (escolherTextura == 5)
                    {
                        //Load na textura do Alvo
                        alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos5");
                    }
                    if (escolherTextura == 6)
                    {
                        //Load na textura do Alvo
                        alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos6");
                    }
                    if (escolherTextura == 7)
                    {
                        //Load na textura do Alvo
                        alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos7");
                    }
                    if (escolherTextura == 8)
                    {
                        //Load na textura do Alvo
                        alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos8");
                    }
                    if (escolherTextura == 9)
                    {
                        //Load na textura do Alvo
                        alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos9");
                    }
                    #endregion

                }

                #region Movimetacao

                if (escolherTextura == 1)
                {
                    Local_Alvo.X += velocidade1;
                }
                if (escolherTextura == 2)
                {
                    Local_Alvo.X += velocidade2;
                }
                if (escolherTextura == 3)
                {
                    Local_Alvo.X += velocidade3;
                }
                if (escolherTextura == 4)
                {
                    Local_Alvo.X += velocidade4;
                }
                if (escolherTextura == 5)
                {
                    Local_Alvo.X += velocidade5;
                }
                if (escolherTextura == 6)
                {
                    Local_Alvo.X += velocidade6;
                }
                if (escolherTextura == 7)
                {
                    Local_Alvo.X += velocidade7;
                }
                if (escolherTextura == 8)
                {
                    Local_Alvo.X += velocidade8;
                }
                if (escolherTextura == 9)
                {
                    Local_Alvo.X += velocidade9;
                }


            if (Local_Alvo.X > Jogo.Local_balcao.X + Jogo.Local_balcao.Width - 65)
            {
                Local_Alvo.X = Jogo.Local_balcao.X + Jogo.Local_balcao.Width - 66;

                velocidade1 *= -1;
                velocidade2 *= -1;
                velocidade3 *= -1;
                velocidade4 *= -1;
                velocidade5 *= -1;
                velocidade6 *= -1;
                velocidade7 *= -1;
                velocidade8 *= -1;
                velocidade9 *= -1;

                #region EscolherTextura

                escolherTextura = Game1.random.Next(1, 10);

                if (escolherTextura == 1)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos1");
                }
                if (escolherTextura == 2)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos2");
                }
                if (escolherTextura == 3)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos3");
                }
                if (escolherTextura == 4)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos4");
                }
                if (escolherTextura == 5)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos5");
                }
                if (escolherTextura == 6)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos6");
                }
                if (escolherTextura == 7)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos7");
                }
                if (escolherTextura == 8)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos8");
                }
                if (escolherTextura == 9)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos9");
                }
                #endregion
                Local_Alvo.Y = 90 * Game1.random.Next(0, 4) + 315;

                viradodireita = false;
            }

            if (Local_Alvo.X <= Jogo.Local_balcao.X)
            {
                Local_Alvo.X = Jogo.Local_balcao.X + 1;

                velocidade1 *= -1;
                velocidade2 *= -1;
                velocidade3 *= -1;
                velocidade4 *= -1;
                velocidade5 *= -1;
                velocidade6 *= -1;
                velocidade7 *= -1;
                velocidade8 *= -1;
                velocidade9 *= -1;

                #region EscolherTextura

                escolherTextura = Game1.random.Next(1, 10);

                if (escolherTextura == 1)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos1");
                }
                if (escolherTextura == 2)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos2");
                }
                if (escolherTextura == 3)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos3");
                }
                if (escolherTextura == 4)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos4");
                }
                if (escolherTextura == 5)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos5");
                }
                if (escolherTextura == 6)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos6");
                }
                if (escolherTextura == 7)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos7");
                }
                if (escolherTextura == 8)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos8");
                }
                if (escolherTextura == 9)
                {
                    //Load na textura do Alvo
                    alvo = Content.Load<Texture2D>("Estado/Jogo/Textures/Alvos/alvos9");
                }
                #endregion

                Local_Alvo.Y = 90 * Game1.random.Next(0, 4) + 315;

                viradodireita = true;
            }

                #endregion
        }

        public void Draw(GameTime gameTime, SpriteBatch spriteBatch)
        {
            if (viradodireita == true && escolherTextura != 9)
            {
                spriteBatch.Draw(
                    alvo,
                    Local_Alvo,
                    null,
                    Color.White,
                    0f,
                    Vector2.Zero,
                    SpriteEffects.FlipHorizontally,
                    1f);
            }
            else
            {
                spriteBatch.Draw(
                    alvo,
                    Local_Alvo,
                    null,
                    Color.White,
                    0f,
                    Vector2.Zero,
                    SpriteEffects.None,
                    1f);
            }
        }              

    }
}
